package com.divemotor.ventarepuestosinternet.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.Transient;

import com.divemotor.ventarepuestosinternet.util.Constantes;

@Embeddable
public class ImagenRepuestoNroSaPK implements Serializable{
	
	private static final long serialVersionUID = -5494260327039238848L;
	
	@Column(name="NUM_ID_IMAGEN_REPUESTO", nullable=false, length=10)
	private Integer numIdImagenRepuesto;
	@Column(name="NRO_CORR_SA", nullable=false, length=10)
	private String nroCorrSa;
	@Column(name="NRO_EXT_SA", nullable=false, length=5)
	private String nroExtSa;
	
	@Transient
	private String nroSa;
	
	
	public ImagenRepuestoNroSaPK(){
		
	}
	
	public ImagenRepuestoNroSaPK(Integer numImgRpto, String nroCorrSa, String nroExtSa){
		this.numIdImagenRepuesto = numImgRpto;
		this.nroCorrSa			 = nroCorrSa;
		this.nroExtSa			 = nroExtSa;
	}
	
	public Integer getNumIdImagenRepuesto() {
		return numIdImagenRepuesto;
	}
	
	public void setNumIdImagenRepuesto(Integer numIdImagenRepuesto) {
		this.numIdImagenRepuesto = numIdImagenRepuesto;
	}
	
	public String getNroCorrSa() {
		return nroCorrSa;
	}
	
	public void setNroCorrSa(String nroCorrSa) {
		this.nroCorrSa = nroCorrSa;
	}
	
	public String getNroExtSa() {
		return nroExtSa;
	}
	
	public void setNroExtSa(String nroExtSa) {
		this.nroExtSa = nroExtSa;
	}

	public String getNroSa() {
		return nroCorrSa + Constantes.SLACE + nroExtSa;
	}

	public void setNroSa(String nroSa) {
		this.nroSa = nroSa;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((nroCorrSa == null) ? 0 : nroCorrSa.hashCode());
		result = prime * result + ((nroExtSa == null) ? 0 : nroExtSa.hashCode());
		result = prime * result + ((numIdImagenRepuesto == null) ? 0 : numIdImagenRepuesto.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj){
			return true;
		}
		if (obj == null){
			return false;
		}
		if (getClass() != obj.getClass()){
			return false;
		}
		ImagenRepuestoNroSaPK other = (ImagenRepuestoNroSaPK) obj;
		if (nroCorrSa == null) {
			if (other.nroCorrSa != null){
				return false;
			}
		} else if (!nroCorrSa.equals(other.nroCorrSa)){
			return false;
		}
		if (nroExtSa == null) {
			if (other.nroExtSa != null){
				return false;
			}
		} else if (!nroExtSa.equals(other.nroExtSa)){
			return false;
		}
		if (numIdImagenRepuesto == null) {
			if (other.numIdImagenRepuesto != null){
				return false;
			}
		} else if (!numIdImagenRepuesto.equals(other.numIdImagenRepuesto)){
			return false;
		}
		return true;
	}
	
}
